In a case where a communication channel is degraded in a wireless communication system, retransmission control is performed so that communication channel errors decrease. This is known as a name of ARQ (Automatic Repeat reQuest). In an ARQ scheme, a receiver cancels erroneous data and requests a transmitter to retransmit the same data.
As an extension of an ARQ technique, there is a Hybrid ARQ technique which incorporates retransmission processing and encoding (error correcting coding) (see Japanese Patent Laid-Open No. 2002-171245). The Hybrid ARQ technique is such that erroneous data prior to decoding is stored and decode processing is performed after the erroneous data is added to retransmission data received thereafter, for the sake of effective reuse of the signal component included in the preceding erroneous data.
FIG. 9 is a block diagram showing an exemplary configuration of a transmitter 300 for realizing a conventional retransmission scheme.
An error detecting code unit 301 adds an error detecting code to user data. The error detecting code includes typically Cyclic Redundancy Check (CRC). Next, an encoder 302 encodes the data, providing redundancy for the data. This encoding uses typically a convolutional code or a turbo code. The data encoded by the encoder 302 is temporarily stored in a retransmission buffer 303. A modulator 304 modulates the encoded data, and a transmitting/receiving unit 305 transmits the modulated data as transmission data. The data is converted to a radio frequency band by the transmitting/receiving unit 305 in the case of wireless transmission. A demodulator 306 demodulates the data received from the transmitting/receiving unit 305, and retransmission control information is extracted from the demodulated data. If the extracted data is ACK (data correctly received), a retransmission controller 307 clears the retransmission buffer 303 and transmits new data. If the extracted data is NACK (retransmission order), the data in the retransmission buffer 303 is modulated again and retransmitted.
FIG. 10 is a block diagram showing an exemplary configuration of a receiver 400, which corresponds to the transmitter 300 of FIG. 9, for realizing a conventional retransmission scheme. The transmission data received by a transmitting/receiving unit 401 is detected and demodulated by a demodulator 402. Soft-decision data outputted from the demodulator 402 is temporarily stored in a composition buffer 403. If there exists past transmission data received from the transmitter, the past transmission data is added to the transmission data and the content of the composition buffer 403 is updated. A decoder 404 decodes the output of the composition buffer 403. An error detector 405 detects an error of the demodulated and decoded data using the error detecting code. If the error detector 405 determines that there is no error, the error detector 405 outputs the user data, clears the composition buffer 403, and transmits ACK (data correctly received). The result of the error detection is sent to a retransmission order controller 406. The retransmission order controller 406 transmits NACK (retransmission order) if an error is detected by the error detector 405.
With the configuration as described, error-free data transmission with less retransmission can be achieved.
On the other hand, there is a scheme for performing error correcting doubly to improve resistance to transmission line errors. In the scheme as mentioned, a structure in which an outer code corrects an error produced in an inner code provides enhanced resistance to transmission line errors.
FIG. 11 is a block diagram showing an exemplary configuration of a transmitter 500 that uses a scheme for performing error correcting doubly.
New user data to be transmitted is temporarily stored in a retransmission buffer 501. If data to be transmitted is new data, the transmitter 500 transmits the stored data. If data to be transmitted is retransmission data, the transmitter 500 transmits the past stored data. An error detecting code unit 502 adds an error detecting code (such as CRC) to transmission data. An encoder 503 encodes the transmission data to which the error detecting code is added, using an error correcting code of an outer code. A Reed-Solomon code, a Bose-Chaudhuri-Hocquenghem code (BCH code), etc. are used as the outer code. The data encoded by the encoder 503 is divided into M blocks at a frame dividing unit 504. An encoder 505 encodes each of the divided data using a second error correcting code of an inner code. A convolutional code, a turbo code, etc. are used as the inner code. The data encoded by the encoder 505 is modulated by a modulator 506, and the modulated data is transmitted to a transmission line through a transmitting/receiving unit 507. The data received by the transmitting/receiving unit 507 is demodulated by the demodulator 508, and the resulting data is sent to a retransmission controller 509. The retransmission controller 509 extracts a retransmission ordering message from the demodulated data. If the message is ACK, the retransmission controller 509 clears the retransmission buffer 501 in which the past transmission data is stored and transmits new data. If the message is NACK, the retransmission data stored in the retransmission buffer 501 is transmitted.
FIG. 13 shows schematically a relationship between the frame data and the divided blocks in the transmitter 500. Frame data 701 is stored in the retransmission buffer 501, and the error detecting code is added to the frame data 701. The encoder 503 encodes the frame data 701 using the outer code to make encoded data 702. The frame dividing unit 504 divides the encoded data 702 into M blocks 703. The encoder 505 encodes each divided block using the inner code to make encoded blocks 704.
FIG. 12 is a block diagram showing an exemplary configuration of a receiver 600 corresponding to the transmitter 500 of FIG. 11.
A signal received by a transmitting/receiving unit 601 is detected and demodulated by a demodulator 602. A decoder 603 decodes each of the divided blocks (encoded blocks 704) of the received signal. A frame combining unit 604 combines M blocks of the decoded data and creates a data frame which is further decoded at a decoder 605. An error detector 607 determines whether there is an error in the decoded data using the error detecting code. If there is no error, the error detector 607 outputs the decoded data as user data. The retransmission order controller 608 creates ACK if the error detector 607 determines that there is no error, or NACK if the error detector 607 detects an error. A modulator 609 modulates a retransmission control message, and a transmitting/receiving unit 601 transmits the message.
With the configuration as described, resistance to transmission line errors can be increased.
However, there is a problem described below in the case where the retransmission scheme is applied to a communication system that contains both inner and outer codes.
That is, in the case of performing a retransmission order for an outer-code error, data that is determined to have no inner-code error is also retransmitted; therefore, it does not necessarily lead to improvement of transmission efficiency.
Further, there may be a case where a retransmission order is performed in units of divided blocks for an inner-code error. In this case, if retransmission orders are performed for all inner codes, there occur some retransmission orders for errors that can be corrected with outer-code error correction; therefore, it does not lead to improvement of transmission efficiency, either.